/*
 *
 * Copyright (C) 2012 Walter Lütgenau
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *      http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * 
 */
package offset.nodes.client.veditor.controller;

import javax.swing.Action;
import javax.swing.JEditorPane;
import offset.nodes.client.editor.Editor;
import offset.nodes.client.editor.controller.component.ComponentKit;
import offset.nodes.client.editor.controller.EditorKit;
import offset.nodes.client.editor.view.EditorCaret;

/**
 *
 * @author Walter Lütgenau
 */
public class VirtualEditorKit extends EditorKit {

    public VirtualEditorKit(Editor editor) {
        super(editor);
    }

    protected ComponentKit createComponentKit() {
        return new VirtualComponentKit(getEditor());
    }

    protected Action getInsertBreakAction() {
        return new VirtualEditorActions.VirtualInsertBreakAction(getEditor());
    }

    protected Action getTabAction() {
        return new VirtualEditorActions.VirtualTabAction(getEditor());
    }

    protected Action getBackTabAction() {
        return new VirtualEditorActions.VirtualBackTabAction(getEditor());
    }

    protected Action getCaretLeftAction() {
        return new VirtualEditorActions.VirtualCaretLeftAction(getEditor());
    }

    protected Action getCaretRightAction() {
        return new VirtualEditorActions.VirtualCaretRightAction(getEditor());
    }

    protected Action getCaretUpAction() {
        return new VirtualEditorActions.VirtualCaretUpAction(getEditor());
    }

    protected Action getCaretDownAction() {
        return new VirtualEditorActions.VirtualCaretDownAction(getEditor());
    }

    public void install(JEditorPane pane) {
        super.install(pane);
        
        EditorCaret caret = (EditorCaret) pane.getCaret();
        caret.setAdjustVisibility(false);
    }
}
